package com.neusoft.elmboot.service;

import com.neusoft.elmboot.po.PointsRedemption;
import com.neusoft.elmboot.po.PointsStoreItem;

import java.util.List;

public interface PointsStoreService {
	
	/**
	 * 获取所有可用的积分商店商品
	 * @return 商品列表
	 */
	List<PointsStoreItem> getAllAvailableItems();
	
	/**
	 * 管理员：获取所有积分商店商品（不按状态过滤）
	 */
	List<PointsStoreItem> getAllItems();
	
	/**
	 * 根据ID获取商品
	 * @param itemId 商品ID
	 * @return 商品
	 */
	PointsStoreItem getItemById(Integer itemId);
	
	/**
	 * 兑换商品
	 * @param userId 用户ID
	 * @param itemId 商品ID
	 * @return 是否成功
	 */
	boolean redeemItem(String userId, Integer itemId);
	
	/**
	 * 获取用户的兑换记录
	 * @param userId 用户ID
	 * @return 兑换记录列表
	 */
	List<PointsRedemption> getRedemptionsByUserId(String userId);
	
	/**
	 * 管理员：新增积分商品
	 */
	void addItem(PointsStoreItem item);
	
	/**
	 * 管理员：更新积分商品
	 */
	void updateItem(PointsStoreItem item);
	
	/**
	 * 管理员：更新积分商品状态
	 */
	void updateItemStatus(Integer itemId, Integer status);
}

